package com.martinwj.service;

import com.martinwj.constant.ErrorMsg;
import com.martinwj.entity.Field;
import com.martinwj.exception.SysException;

import java.util.List;

/**
 * @ClassName: FieldService
 * @Description: TODO
 * @author: martin-wj
 * @createDate: 2020-12-24
 */
public interface FieldService {
    /**
     * 查询字段列表
     */
    public List<Field> list();

    /**
     * 查询字段列表，并判断某些字段是否已被选择
     */
    public List<Field> list(String typeId);


    /**
     * 查询分类下的字段列表
     * @param typeId 分类信息主键
     * @return
     */
    public List<Field> listByTypeId(String typeId);

    /**
     * 保存字段
     * @param fieldList
     * @throws SysException
     */
    void save(List<Field> fieldList) throws SysException;

    /**
     * 删除字段
     * @param idArr 字段主键数组
     * @throws SysException
     */
    public void delete(String[] idArr) throws SysException;

    /**
     * 获取分类筛选字段的信息
     * @param typeId 分类信息的主键
     * @return
     */
    public List<Field> getListField(String typeId);

    /**
     * 获取分类筛选字段的信息2
     * @param typeId 分类信息的主键
     * @param fieldName 字段名
     * @param fieldValue 字段选项名
     * @return
     */
    List<Field> getListField(String typeId, String fieldName, String fieldValue);

    /**
     * 根据主键查询字段信息
     * @param id 主键
     * @return
     */
    public Field selectById(String id);

    /**
     * 查询单选框字段
     * @return
     */
    public List<Field> listRadio();

    /**
     * 根据分类id，查询该分类的单选框字段
     * @param typeId 分类信息的id
     * @return
     */
    public List<Field> listRadioByTypeId(String typeId);

    /**
     * 获取分类筛选字段的信息
     * @param typeId 分类信息主键
     * @return
     */
    public List<Field> listCategoryField(String typeId);

}
